package com.tosee.exception;

import java.util.ArrayList;
import java.util.List;

/**
 * Exception contenant une liste
 * 
 * @author robint
 */
public class ConteneurException extends GeneriqueException {

    /**
     * UID pour la sérialisation
     */
    private static final long serialVersionUID = 1L;

    /**
     * Liste des exceptions
     */
    protected List<Throwable> listeExceptions;

    /**
     * Constructeur par défaut
     */
    public ConteneurException() {
        super();
    }

    /**
     * Constructeur
     * 
     * @param msg
     */
    public ConteneurException(String msg) {
        super(msg);
    }

    /**
     * Ajout d'une exception dans le conteneur
     * 
     * @param _throwable exception à ajouter
     */
    public void ajouterException(Throwable _throwable) {
        if(listeExceptions == null) {
            listeExceptions = new ArrayList<Throwable>();
        }
        listeExceptions.add(_throwable);
    }

    /**
     * Indique si le conteneur contient des exceptions
     */
    public boolean isEmpty() {
        return listeExceptions == null || listeExceptions.isEmpty();
    }

    /**
     * Constructeur.
     * 
     * @param message message
     * @param cause cause de la violation
     */
    public ConteneurException(String message, Throwable cause) {
        super(message, cause);
    }

    /**
     * @return the listeExceptions
     */
    public List<Throwable> getListeExceptions() {
        return listeExceptions;
    }

    /**
     * @param listeExceptions the listeExceptions to set
     */
    public void setListeExceptions(List<Throwable> listeExceptions) {
        this.listeExceptions = listeExceptions;
    }

}
